↳ Prolog
↳ PrologToPiTRSProof
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYIS_IN_AG(Z, X) → U1_AG(Z, X, evaluate_in_ga(X, Z))
MYIS_IN_AG(Z, X) → EVALUATE_IN_GA(X, Z)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(X, X) → U11_GA(X, myinteger_in_g(X))
EVALUATE_IN_GA(X, X) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → U12_G(X, myinteger_in_g(X))
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U9_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_GA(X, Y, Z, mult_in_gga(X1, Y1, Z))
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → MULT_IN_GGA(X1, Y1, Z)
MULT_IN_GGA(s(X), Y, R) → U15_GGA(X, Y, R, mult_in_gga(X, Y, Z))
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → U16_GGA(X, Y, R, add_in_gga(Y, Z, R))
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → ADD_IN_GGA(Y, Z, R)
ADD_IN_GGA(s(X), Y, s(Z)) → U13_GGA(X, Y, Z, add_in_gga(X, Y, Z))
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U6_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_GA(X, Y, Z, sub_in_gga(X1, Y1, Z))
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → SUB_IN_GGA(X1, Y1, Z)
SUB_IN_GGA(s(X), s(Y), Z) → U14_GGA(X, Y, Z, sub_in_gga(X, Y, Z))
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U3_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_GA(X, Y, Z, add_in_gga(X1, Y1, Z))
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → ADD_IN_GGA(X1, Y1, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
MYIS_IN_AG(Z, X) → U1_AG(Z, X, evaluate_in_ga(X, Z))
MYIS_IN_AG(Z, X) → EVALUATE_IN_GA(X, Z)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(X, X) → U11_GA(X, myinteger_in_g(X))
EVALUATE_IN_GA(X, X) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → U12_G(X, myinteger_in_g(X))
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U9_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_GA(X, Y, Z, mult_in_gga(X1, Y1, Z))
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → MULT_IN_GGA(X1, Y1, Z)
MULT_IN_GGA(s(X), Y, R) → U15_GGA(X, Y, R, mult_in_gga(X, Y, Z))
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → U16_GGA(X, Y, R, add_in_gga(Y, Z, R))
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → ADD_IN_GGA(Y, Z, R)
ADD_IN_GGA(s(X), Y, s(Z)) → U13_GGA(X, Y, Z, add_in_gga(X, Y, Z))
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U6_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_GA(X, Y, Z, sub_in_gga(X1, Y1, Z))
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → SUB_IN_GGA(X1, Y1, Z)
SUB_IN_GGA(s(X), s(Y), Z) → U14_GGA(X, Y, Z, sub_in_gga(X, Y, Z))
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U3_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_GA(X, Y, Z, add_in_gga(X1, Y1, Z))
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → ADD_IN_GGA(X1, Y1, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
SUB_IN_GGA(s(X), s(Y)) → SUB_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
ADD_IN_GGA(s(X), Y) → ADD_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
MULT_IN_GGA(s(X), Y) → MULT_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
U5_GA(Y, evaluate_out_ga(X1)) → EVALUATE_IN_GA(Y)
EVALUATE_IN_GA(+(X, Y)) → U2_GA(Y, evaluate_in_ga(X))
EVALUATE_IN_GA(+(X, Y)) → EVALUATE_IN_GA(X)
U2_GA(Y, evaluate_out_ga(X1)) → EVALUATE_IN_GA(Y)
EVALUATE_IN_GA(-(X, Y)) → EVALUATE_IN_GA(X)
U8_GA(Y, evaluate_out_ga(X1)) → EVALUATE_IN_GA(Y)
EVALUATE_IN_GA(*(X, Y)) → EVALUATE_IN_GA(X)
EVALUATE_IN_GA(*(X, Y)) → U8_GA(Y, evaluate_in_ga(X))
EVALUATE_IN_GA(-(X, Y)) → U5_GA(Y, evaluate_in_ga(X))
evaluate_in_ga(+(X, Y)) → U2_ga(Y, evaluate_in_ga(X))
evaluate_in_ga(-(X, Y)) → U5_ga(Y, evaluate_in_ga(X))
evaluate_in_ga(*(X, Y)) → U8_ga(Y, evaluate_in_ga(X))
evaluate_in_ga(X) → U11_ga(X, myinteger_in_g(X))
U2_ga(Y, evaluate_out_ga(X1)) → U3_ga(X1, evaluate_in_ga(Y))
U5_ga(Y, evaluate_out_ga(X1)) → U6_ga(X1, evaluate_in_ga(Y))
U8_ga(Y, evaluate_out_ga(X1)) → U9_ga(X1, evaluate_in_ga(Y))
U11_ga(X, myinteger_out_g) → evaluate_out_ga(X)
U3_ga(X1, evaluate_out_ga(Y1)) → U4_ga(add_in_gga(X1, Y1))
U6_ga(X1, evaluate_out_ga(Y1)) → U7_ga(sub_in_gga(X1, Y1))
U9_ga(X1, evaluate_out_ga(Y1)) → U10_ga(mult_in_gga(X1, Y1))
myinteger_in_g(s(X)) → U12_g(myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g
U4_ga(add_out_gga(Z)) → evaluate_out_ga(Z)
U7_ga(sub_out_gga(Z)) → evaluate_out_ga(Z)
U10_ga(mult_out_gga(Z)) → evaluate_out_ga(Z)
U12_g(myinteger_out_g) → myinteger_out_g
add_in_gga(s(X), Y) → U13_gga(add_in_gga(X, Y))
add_in_gga(0, X) → add_out_gga(X)
sub_in_gga(s(X), s(Y)) → U14_gga(sub_in_gga(X, Y))
sub_in_gga(X, 0) → sub_out_gga(X)
mult_in_gga(s(X), Y) → U15_gga(Y, mult_in_gga(X, Y))
mult_in_gga(0, Y) → mult_out_gga(0)
U13_gga(add_out_gga(Z)) → add_out_gga(s(Z))
U14_gga(sub_out_gga(Z)) → sub_out_gga(Z)
U15_gga(Y, mult_out_gga(Z)) → U16_gga(add_in_gga(Y, Z))
U16_gga(add_out_gga(R)) → mult_out_gga(R)
evaluate_in_ga(x0)
U2_ga(x0, x1)
U5_ga(x0, x1)
U8_ga(x0, x1)
U11_ga(x0, x1)
U3_ga(x0, x1)
U6_ga(x0, x1)
U9_ga(x0, x1)
myinteger_in_g(x0)
U4_ga(x0)
U7_ga(x0)
U10_ga(x0)
U12_g(x0)
add_in_gga(x0, x1)
sub_in_gga(x0, x1)
mult_in_gga(x0, x1)
U13_gga(x0)
U14_gga(x0)
U15_gga(x0, x1)
U16_gga(x0)
From the DPs we obtained the following set of size-change graphs: